Wabi offers freedom of choice in multiplatform environments

By Bob Vandette

At first glance, nothing appears unusual. You stand, looking over the shoulder of the Wall Street trader, watching her buy and sell stocks on her workstation. What you see looks like the typical desktop metaphor you'd expect to find on any computer screen in corporate America. Many of the usual desktop tools are represented -- Lotus 1-2-3, Microsoft Office, WordPerfect. She clicks away her buy and sell orders in a trading application while, from time to time, she also copies and pastes information from the trading window into the spreadsheet.

Then it hits you. What looks perfectly normal ought to be impossible. Some of these are Windows applications. One is clearly a Unix application. They are all running on a Sparcstation. Yet, they all seem to be running perfectly fine -- each in its own window, each able to share information with the others. What's going on here?

Welcome to Wabi. Unlike other products that implement one software environment in another via emulation, Wabi both emulates and translates. Take those windows you see on the trader's computer screen, for example. Each of them is an X Window, not a Microsoft Window. When an application calls for an operating system service, like onscreen display or print spooling, those calls are received by Solaris, not Windows. That way, the requested function can be delivered as a native service with all the speed, functionality and seamlessness that it implies. Translation is one reason you can cut and paste between windows -- these are the windows native to the machine and they use the X Windows cut and paste buffer.

But cut and paste is only the beginning. The advantage of translation over emulation is that you can make Windows applications do things they could not do under Windows. For example, because the application's user interface is a true X Window, what was once a standalone application is now networkable and sharable across the network. All you need is one copy of Microsoft Word or Lotus 1-2-3 running anywhere on the network and all users can run them as if each person had a private copy. Why would you want to do that? Because one copy of an application is much easier and less expensive to manage than multiple copies, licenses, configurations and version levels that can be scattered throughout the organization. (Organizations running multiple sessions off the same copy must still buy multiple licenses. Sun is working on a way to manage license usage across the network.)

In a similar vein, it is often much easier to set up a PC-type environment on a Unix workstation that is already running than to set that environment up from scratch on an actual PC. "I just unpacked a brand new Pentium 90," says Don Devitt, a Sun applications engineer. "It took me two days to install the software, Microsoft Windows for Workgroups, PC-NFSpro [a Sun networking product], and some applications. I had to find all the interrupt vectors, which I finally figured out. They were all hidden away in the documentation. With this [he clicks on the power switch to a Sun Voyager portable], you just turn on the power, type wabi, and if there is a copy of Wabi already on the network, you're all set."

Fonts are another case where translation is better than emulation. Since X11 R5 has its own font rendering engine, fonts can be downloaded from any machine to any X-enabled client, allowing networked Windows applications to run much faster on the desktop than if servers had to transmit bitmaps every time they wanted to refresh the screen.

Performance is perhaps the biggest payoff. On a Sparcstation 5, Wabi delivers performance comparable to that of a 486. It does that in two ways. First, Wabi intercepts and translates API calls to Windows so that Solaris services replace Windows services. (For example, Wabi creates a call to the Solaris serial driver rather than emulate multiple port I/O calls.) Second, Wabi does a good emulation of functions that cannot be replaced.

Traditional emulators read the non-native (i.e., Intel) instruction streams, one instruction at a time, and execute an equivalent stream of Sparc instructions. What Wabi does that is different is to look at the stream of x86 instructions and, on the fly, produce a stream of Sparc instructions that is optimized. The resulting Sparc instructions are then cached. Caching can greatly improve performance, particularly in cases like spreadsheet recalculation, where the same instructions are executed over and over again. As far as performance is concerned, this is "the next best thing" to actually rewriting the Intel applications themselves to run on Sparc.

Putting this kind of functionality into Wabi demonstrates Sun's desire to do more than just imitate Microsoft Windows. "There is a misperception in the marketplace that by putting Wabi together with Solaris, we're creating some sort of PC knock off," says Dave Power, vice president and general manager of SunSoft's desktop products business. "Wabi is really intended to be a productivity environment that supports the needs of the workstation user. [Unlike Microsoft] we are not in the hundred million desktop business. We are focused on the few-million desktops engaged in enterprise computing applications. A few hundred thousand additional seats in emerging segments that use this kind of [productivity] computing makes Sun incredibly successful."

A broader strategy

Sun's strategy encompasses more than just the Wabi/Solaris/Sparc combination. Sun offers products for both PC and Macintosh application users on both Sparc and Intel x86 machines. Wabi, for example, runs under Solaris on both Sparc and x86. Another product that runs under Solaris, SunPC, is entirely emulation-based, but comes with a 486DX co-processor board to execute Intel instructions without emulation. However, as an emulation-only product, SunPC (like Merge and MAE discussed below) does not provide the kind of integration that translation makes possible. For example, when running Windows applications, users will not see a single desktop. They see a PC desktop inside a Unix desktop, and there is little or no interaction between the two, such as PC file recognition and Solaris desktop utilities.

A third product, Merge for the Solaris x86 operating system, is a software solution that enables standard-mode MS-DOS and MS-Windows software to run within the Solaris x86 operating environment. Merge creates a virtual Intel 80x86 environment and runs MS-DOS, MS-Windows and application binaries native on the system processor.

For Macintosh application users, Sun offers the Macintosh Application Environment (MAE). MAE emulates a Macintosh on a Sparcstation running Solaris. The full Mac environment, including Finder and System 7.1 functionality, is provided in an X Window. MAE is a product of Apple Computer Inc.

Which of these products you use depends, of course, on which applications you want to run and what native computing environment you use. As demonstrated by Wabi, Sun wants to give desktop productivity users the features they've come to expect from high-powered networked workstations, like distributed, sharable interfaces to applications that look like they're native and local to the user's desktop.

"We did some research on what Unix users need for productivity applications," said Power. "We wanted to get a profile of the desktop user we're trying to help out. What we found was that three-quarters of Unix desktop users are also Windows application users. They have a PC at home or a laptop. Yet, there was only 10 percent or less penetration for emulation products. Clearly, there must be a barrier to using those products -- a barrier that is some combination of behavioral, performance and cost."

Users who are constrained by their desktop configuration or spend a lot of time doing both PC and Unix based applications should consider using Wabi on a server, displaying back to their client desktop. More intense PC application users, however, may want to use Wabi in combination with SunPC and its locally dedicated hardware support of the Intel instruction set. Finally, users whose jobs require that they constantly work within a PC environment, the so-called "power user," may be better off working on a Pentium machine and networking back to the Unix environment. For that they can use a product such as PC-NFSpro.

One caution: Not all Windows programs can benefit from Wabi's translation facilities. Those that do, like Lotus 1-2-3 and Microsoft Office, represent the top 80 percent of PC software shipped and have been certified by Sun to run on Wabi. Those that don't are supported on a pure emulation product like SunPC or Merge.

An open market is one that gives people choices. But a choice between a computer that runs only the organization's mission-critical applications and one that runs only productivity applications is not a real choice. Today, workstation users can bridge the gap by choosing among translation, emulation-only and hardware supported PC environments -- in both standalone and server-based configurations. Based on criteria such as performance, level-of-integration and cost, the choice is yours.

Bob Vandette, the creator of Wabi, is chief technologist for SunSoft's PC Desktop Integration Business. He is currently responsible for product architecture development for current and future PC application integration products for Unix-based systems.